home *** CD-ROM | disk | FTP | other *** search
/ United Public Domain Gold 2 / United Public Domain Gold 2.iso / education / pe058.dms / pe058.adf / spell.AMOS / spell.amosSourceCode
AMOS Source Code  |  1978-01-06  |  12KB  |  373 lines

  1. Rem ------------------------------------ 
  2. Rem --                                -- 
  3. Rem -- SPELLING PROGRAMME BY D.S.FARR -- 
  4. Rem --                                -- 
  5. Rem --           15/8/90              -- 
  6. Rem --                                -- 
  7. Rem ------------------------------------ 
  8. Rem main programme 
  9. Curs Off : Hide : Cls 0
  10. If Chip Free>250000
  11.    ENOUGH_MEM=True
  12. Else 
  13.    ENOUGH_MEM=False
  14. End If 
  15. Flash 1,"(007,10)(007,10)"
  16. Locate 16,10 : Pen 1 : Paper 0 : Print "LOADING" : Locate 14,12 : Pen 1 : Paper 0 : Print "PLEASE WAIT"
  17. Locate 1,20 : Paper 0 : Pen 1 : Print "- Please leave the disk in the drive -"
  18. Locate 1,22 : Paper 0 : Pen 1 : Print "  - Remove any external disk drive -" : If ENOUGH_MEM=False Then Wait 60
  19. Global CHECK
  20. Global ENOUGH_MEM
  21. Global QUIT
  22. Global WORD$
  23. Dim COMP(6)
  24. Dim COMP$(6)
  25. Global COMP()
  26. Global COMP$()
  27. Global CLONE$
  28. Global LONG
  29. Global TALLY
  30. Global TALLYHO
  31. Channel 1 To Bob 1 : Rem crate
  32. Channel 2 To Bob 2 : Rem main letters (2 to 7)
  33. Channel 3 To Bob 3
  34. Channel 4 To Bob 4
  35. Channel 5 To Bob 5
  36. Channel 6 To Bob 6
  37. Channel 7 To Bob 7
  38. Channel 8 To Bob 8 : Rem small letters
  39. Channel 9 To Bob 9 : Rem fork lift
  40. Channel 10 To Bob 10 : Rem crane line 
  41. Channel 11 To Bob 11 : Rem crane hook 
  42. Channel 12 To Bob 12 : Rem no man 
  43. Channel 13 To Bob 13 : Rem yes man
  44. Channel 14 To Bob 14 : Rem numbers
  45. If ENOUGH_MEM
  46.    Load "spelling:sprites/sprite.abk"
  47.    Load "spelling:samples/Samples.Abk"
  48. Else 
  49.    Load "spelling:sprites/spritelow.abk"
  50. End If 
  51. Rem ****************************** 
  52. Rem ******** MAIN LOOP *********** 
  53. Do 
  54.    CHECK=0 : QUIT=0
  55.    Proc OPTIONS
  56.    Repeat 
  57.       Proc WORDSTUDY
  58.       Locate 8,8 : Paper 0 : Pen 2 : Print "LETS"
  59.       Locate 13,8 : Paper 0 : Pen 3 : Print "GO"
  60.       Locate 16,8 : Paper 0 : Pen 4 : Print "INTO"
  61.       Locate 21,8 : Paper 0 : Pen 5 : Print "THE"
  62.       Locate 25,8 : Paper 0 : Pen 6 : Print "FACTORY" : Wait 40
  63.       If ENOUGH_MEM
  64.          Proc SPELL_HIGH
  65.       Else 
  66.          Proc SPELL_LOW
  67.       End If 
  68.       Proc COMPARE_WORD
  69.       While CLONE$<>WORD$ and QUIT=0
  70.          Proc NOCORRECT
  71.          If ENOUGH_MEM
  72.             Proc SPELL_HIGH
  73.          Else 
  74.             Proc SPELL_LOW
  75.          End If 
  76.          Proc COMPARE_WORD
  77.       Wend 
  78.       If QUIT=0 Then Proc CORRECT
  79.       If QUIT=0 and TALLY=10 Then Proc TRUCK
  80.    Until QUIT=1
  81.    Rem ***************************
  82.    Rem ***************************
  83. Procedure OPTIONS
  84.    TALLY=0
  85.    TALLYHO=0
  86.    Load Iff "spelling:iff/option.iff",0
  87.    While CHECK=0
  88.       OPTION$=Input$(1)
  89.       If OPTION$="e" Then CHECK=1 : Bell(50) : Wait 7
  90.       If OPTION$="m" Then CHECK=2 : Bell(50) : Wait 7
  91.       If OPTION$="h" Then CHECK=3 : Bell(50) : Wait 7
  92.       If CHECK=0 Then Bell(5) : Wait 5
  93.    Wend 
  94.    OPTION1$=Upper$(OPTION$)
  95.    Locate 19,23 : Paper 3 : Pen 1 : Print OPTION1$
  96.    Wait 40
  97.    Fade 3 : Wait 45
  98.    If CHECK=1 Then Open Random 1,"easy" : Field 1,4 As WORD$
  99.    If CHECK=2 Then Open Random 2,"medium" : Field 2,5 As WORD$
  100.    If CHECK=3 Then Open Random 3,"hard" : Field 3,6 As WORD$
  101.    Randomize Timer
  102. End Proc
  103. Rem
  104. Procedure WORDSTUDY
  105.    Load Iff "spelling:iff/cogsword.iff",0
  106.    Flash Off : Double Buffer 
  107.    Rem *** RANDOM WORD SELECT *** 
  108.    INDEX=Rnd(333) : If INDEX=0 Then INDEX=1 : LONG=0
  109.    If CHECK=1 Then Get 1,INDEX : LONG=4 : POS=51
  110.    If CHECK=2 Then Get 2,INDEX : LONG=5 : POS=31
  111.    If CHECK=3 Then Get 3,INDEX : LONG=6 : POS=14
  112.    LETTER=0
  113.    B=2
  114.    For A=1 To LONG
  115.       TEMP$=Mid$(WORD$,A,1)
  116.       POS=POS+38
  117.       If TEMP$="a" Then LETTER=1
  118.       If TEMP$="b" Then LETTER=2
  119.       If TEMP$="c" Then LETTER=3
  120.       If TEMP$="d" Then LETTER=4
  121.       If TEMP$="e" Then LETTER=5
  122.       If TEMP$="f" Then LETTER=6
  123.       If TEMP$="g" Then LETTER=7
  124.       If TEMP$="h" Then LETTER=8
  125.       If TEMP$="i" Then LETTER=9
  126.       If TEMP$="j" Then LETTER=10
  127.       If TEMP$="k" Then LETTER=11
  128.       If TEMP$="l" Then LETTER=12
  129.       If TEMP$="m" Then LETTER=13
  130.       If TEMP$="n" Then LETTER=14
  131.       If TEMP$="o" Then LETTER=15
  132.       If TEMP$="p" Then LETTER=16
  133.       If TEMP$="q" Then LETTER=17
  134.       If TEMP$="r" Then LETTER=18
  135.       If TEMP$="s" Then LETTER=19
  136.       If TEMP$="t" Then LETTER=20
  137.       If TEMP$="u" Then LETTER=21
  138.       If TEMP$="v" Then LETTER=22
  139.       If TEMP$="w" Then LETTER=23
  140.       If TEMP$="x" Then LETTER=24
  141.       If TEMP$="y" Then LETTER=25
  142.       If TEMP$="z" Then LETTER=26
  143.       Bob B,POS,100,LETTER
  144.       Inc B
  145.    Next A
  146.    Rem *** COUNT DOWN NUMBER ***
  147.    If ENOUGH_MEM
  148.       IMAGE=108
  149.    Else 
  150.       IMAGE=32
  151.    End If 
  152.    Wait 40
  153.    For A=1 To 5
  154.       Bob 14,137,180,IMAGE
  155.       Bell(19)
  156.       Wait 65
  157.       IMAGE=IMAGE-1
  158.    Next A
  159.    Wait 40 : Bob Off : Cls 0
  160. End Proc
  161. Rem
  162. Procedure SPELL_LOW
  163.    Load Iff "spelling:iff/factory.iff",0 : Double Buffer 
  164.    Rem *** JOYSTICK CODE ***
  165.    LONG=Len(WORD$)
  166.    POS1=94
  167.    SELECT=1
  168.    For A=1 To LONG
  169.       If PICK=1 Then Wait 12
  170.       PICK=0
  171.       While PICK=0
  172.          If Jright(1) Then SELECT=SELECT+1 : Bell(5) : If SELECT=28 Then SELECT=1
  173.          If Jleft(1) Then SELECT=SELECT-1 : Bell(5) : If SELECT<1 Then SELECT=27
  174.          If Fire(1) Then PICK=1
  175.          Bob 8,240,0,SELECT
  176.          Wait 6
  177.       Wend 
  178.       If SELECT=27 Then Close : Boom : QUIT=1 : Pop Proc
  179.       Bob A,POS1,98,SELECT
  180.       POS1=POS1+38
  181.       COMP(A)=SELECT
  182.    Next A
  183. End Proc
  184. Procedure SPELL_HIGH
  185.    Load Iff "spelling:iff/factory.iff",0 : Double Buffer 
  186.    LONG=Len(WORD$)
  187.    POS1=94
  188.    SELECT=1 : SMALL=27 : B=2
  189.    Rem
  190.    Rem FORK LIFT ANIMATION
  191.    Bob 9,320,179,54
  192.    A$="A0,(54,5)(110,5);"
  193.    A$=A$+"M-292,0,292" : Sam Loop On : Amal 9,A$ : Amal On 9 : Sam Play 6 : Wait 295 : Sam Loop Off 
  194.    Amal 9,"A1,(54,2)(55,2)(56,2)(57,2)(58,2)(59,2)(60,2);" : Amal On 9 : Wait 20 : Sam Play 13 : Wait 40
  195.    Bob 1,28,201,109
  196.    Bob 9,28,179,61
  197.    Amal 9,"M300,0,25" : Amal On 9 : Wait 10 : Sam Play 14 : Wait 38 : Bob Off 9
  198.    Rem
  199.    Rem *** JOYSTICK CODE ***
  200.    For A=1 To LONG
  201.       If PICK=1 Then Wait 12
  202.       PICK=0
  203.       While PICK=0
  204.          If Jright(1) Then SELECT=SELECT+1 : SMALL=SMALL+1 : Bell(5) : If SELECT=28 Then SELECT=1 : If SMALL=54 Then SMALL=27
  205.          If Jleft(1) Then SELECT=SELECT-1 : SMALL=SMALL-1 : Bell(5) : If SELECT<1 Then SELECT=27 : If SMALL<27 Then SMALL=53
  206.          If Fire(1) Then PICK=1 : Sam Play 5
  207.          Bob 8,240,0,SMALL
  208.          Wait 6
  209.       Wend 
  210.       If SELECT=27 Then Close : Boom : QUIT=1 : Pop Proc
  211.       Bob B,POS1,98,SELECT
  212.       POS1=POS1+38
  213.       COMP(A)=SELECT
  214.       Inc B
  215.    Next A
  216.    Wait 15 : Bob Off 8
  217.    Rem
  218.    Rem *** MOVE LETTERS TOGETHER ***
  219.    Wait 20
  220.    TEMP=LONG+1
  221.    TEMP2=LONG
  222.    ROLL=LONG-1
  223.    For W=1 To ROLL
  224.       Amal TEMP,"M-38,0,10" : Sam Loop On : Sam Play 3 : Amal On TEMP : Sam Loop Off : Wait 10
  225.       Bob Off TEMP2 : TEMP2=TEMP2-1
  226.    Next W
  227.    Wait 40
  228.    Rem
  229.    Rem *** MOVE CRANE ANIMATION *** 
  230.    Bob 11,23,-82,77
  231.    Amal 11,"M0,81,20" : Amal On 11 : Sam Play 9 : Wait 20
  232.    Amal 11,"A1,(77,3)(78,3)(79,3)(80,3)(81,3)(82,3)(83,3)(84,3)(85,3)(86,3)" : Sam Loop On : Sam Play 8 : Amal On 11 : Wait 30 : Sam Loop Off 
  233.    Amal 11,"M0,168,15" : Sam Loop On : Sam Play 9 : Amal On 11 : Sam Loop Off 
  234.    Bob 10,39,-1,62
  235.    Amal 10,"A1,(62,1)(63,1)(64,1)(65,1)(66,1)(67,1)(68,1)(69,1)(70,1)(71,1)(72,2)(73,1)(74,1)(75,1)(76,1)" : Amal On 10 : Wait 40
  236.    Bob 11,23,167,87
  237.    Bob Off 1
  238.    Amal 11,"M0,-168,15" : Sam Loop On : Sam Play 9 : Amal On 11 : Sam Loop Off 
  239.    Amal 10,"A1,(76,1)(75,1)(74,1)(73,1)(72,1)(71,1)(70,1)(69,1)(68,1)(67,1)(66,1)(65,1)(64,1)(63,1)(62,1)" : Amal On 10 : Wait 45
  240.    Bob Off 10
  241.    Amal 11,"M64,0,15" : Sam Loop On : Sam Play 9 : Amal On 11 : Wait 20 : Sam Loop Off 
  242.    Amal 11,"M0,53,15" : Sam Loop On : Sam Play 9 : Amal On 11 : Sam Loop Off 
  243.    Bob 10,103,-3,62
  244.    Amal 10,"A1,(62,1)(63,1)(64,1)(65,1)(66,1)(67,1)" : Amal On 10 : Wait 20
  245.    Bob Off TEMP
  246.    Amal 11,"M0,-53,15" : Sam Loop On : Sam Play 9 : Amal On 11 : Sam Loop Off 
  247.    Amal 10,"A1,(67,1)(66,1)(65,1)(64,1)(63,1)(62,1)" : Amal On 10 : Wait 20
  248.    Bob Off 10
  249.    Amal 11,"M260,0,15" : Sam Loop On : Sam Play 9 : Amal On 11 : Wait 10 : Sam Loop Off 
  250.    Wait 35
  251. End Proc
  252. Procedure COMPARE_WORD
  253.    LONG=Len(WORD$)
  254.    For A=1 To LONG
  255.       If COMP(A)=1 Then COMP$(A)="a"
  256.       If COMP(A)=2 Then COMP$(A)="b"
  257.       If COMP(A)=3 Then COMP$(A)="c"
  258.       If COMP(A)=4 Then COMP$(A)="d"
  259.       If COMP(A)=5 Then COMP$(A)="e"
  260.       If COMP(A)=6 Then COMP$(A)="f"
  261.       If COMP(A)=7 Then COMP$(A)="g"
  262.       If COMP(A)=8 Then COMP$(A)="h"
  263.       If COMP(A)=9 Then COMP$(A)="i"
  264.       If COMP(A)=10 Then COMP$(A)="j"
  265.       If COMP(A)=11 Then COMP$(A)="k"
  266.       If COMP(A)=12 Then COMP$(A)="l"
  267.       If COMP(A)=13 Then COMP$(A)="m"
  268.       If COMP(A)=14 Then COMP$(A)="n"
  269.       If COMP(A)=15 Then COMP$(A)="o"
  270.       If COMP(A)=16 Then COMP$(A)="p"
  271.       If COMP(A)=17 Then COMP$(A)="q"
  272.       If COMP(A)=18 Then COMP$(A)="r"
  273.       If COMP(A)=19 Then COMP$(A)="s"
  274.       If COMP(A)=20 Then COMP$(A)="t"
  275.       If COMP(A)=21 Then COMP$(A)="u"
  276.       If COMP(A)=22 Then COMP$(A)="v"
  277.       If COMP(A)=23 Then COMP$(A)="w"
  278.       If COMP(A)=24 Then COMP$(A)="x"
  279.       If COMP(A)=25 Then COMP$(A)="y"
  280.       If COMP(A)=26 Then COMP$(A)="z"
  281.    Next A
  282.    If LONG=4 Then CLONE$=COMP$(1)+COMP$(2)+COMP$(3)+COMP$(4)
  283.    If LONG=5 Then CLONE$=COMP$(1)+COMP$(2)+COMP$(3)+COMP$(4)+COMP$(5)
  284.    If LONG=6 Then CLONE$=COMP$(1)+COMP$(2)+COMP$(3)+COMP$(4)+COMP$(5)+COMP$(6)
  285. End Proc
  286. Procedure CORRECT
  287.    TALLY=TALLY+1 : Rem COUNT OF WORDS CORRECT TO A TOTAL OF 10  
  288.    If ENOUGH_MEM
  289.       Load Iff "spelling:iff/correct.iff",0
  290.       Load "spelling:music/correct.abk"
  291.       Flash Off : Double Buffer : Music 1
  292.       Bob 13,-60,208,96
  293.       A$="A0,(96,3)(97,3)(98,3)(99,3)(98,3)(97,3)(96,3)(100,3)(101,3)(102,3)(103,3)(102,3)(101,3)(100,3);"
  294.       A$=A$+"M 400,0,250"
  295.       Amal 13,A$ : Amal On 13 : Wait 255
  296.    Else 
  297.       Load Iff "spelling:iff/correct.iff",0
  298.       Load "spelling:music/correct.abk"
  299.       Music 1
  300.       Wait 255
  301.    End If 
  302.    Music Off 
  303. End Proc
  304. Procedure NOCORRECT
  305.    If ENOUGH_MEM
  306.       Load Iff "spelling:iff/wrong.iff",0
  307.       Load "spelling:music/wrong.abk"
  308.       Music 1
  309.       Flash Off : Double Buffer 
  310.       Bob 12,-60,208,88
  311.       A$="A0,(88,3)(89,3)(90,3)(91,3)(90,3)(89,3)(88,3)(92,3)(93,3)(94,3)(95,3)(94,3)(93,3)(92,3);"
  312.       A$=A$+"M 400,0,250"
  313.       Amal 12,A$ : Amal On 12 : Wait 230
  314.    Else 
  315.       Load Iff "spelling:iff/wrong.iff",0
  316.       Load "spelling:music/wrong.abk"
  317.       Music 1
  318.    End If 
  319.    For X=82 To 160
  320.       Cls 0,40,82 To 280,X
  321.       If ENOUGH_MEM=False Then Wait 2
  322.    Next X
  323.    Wait 5
  324.    If LONG=4 Then POS=48
  325.    If LONG=5 Then POS=28
  326.    If LONG=6 Then POS=9
  327.    For A=1 To LONG
  328.       TEMP$=Mid$(WORD$,A,1)
  329.       POS=POS+38
  330.       If TEMP$="a" Then LETTER=1
  331.       If TEMP$="b" Then LETTER=2
  332.       If TEMP$="c" Then LETTER=3
  333.       If TEMP$="d" Then LETTER=4
  334.       If TEMP$="e" Then LETTER=5
  335.       If TEMP$="f" Then LETTER=6
  336.       If TEMP$="g" Then LETTER=7
  337.       If TEMP$="h" Then LETTER=8
  338.       If TEMP$="i" Then LETTER=9
  339.       If TEMP$="j" Then LETTER=10
  340.       If TEMP$="k" Then LETTER=11
  341.       If TEMP$="l" Then LETTER=12
  342.       If TEMP$="m" Then LETTER=13
  343.       If TEMP$="n" Then LETTER=14
  344.       If TEMP$="o" Then LETTER=15
  345.       If TEMP$="p" Then LETTER=16
  346.       If TEMP$="q" Then LETTER=17
  347.       If TEMP$="r" Then LETTER=18
  348.       If TEMP$="s" Then LETTER=19
  349.       If TEMP$="t" Then LETTER=20
  350.       If TEMP$="u" Then LETTER=21
  351.       If TEMP$="v" Then LETTER=22
  352.       If TEMP$="w" Then LETTER=23
  353.       If TEMP$="x" Then LETTER=24
  354.       If TEMP$="y" Then LETTER=25
  355.       If TEMP$="z" Then LETTER=26
  356.       Bob A,POS,100,LETTER
  357.    Next A
  358.    Wait 370
  359.    Music Off 
  360. End Proc
  361. Procedure TRUCK
  362.    TALLYHO=TALLYHO+1 : Rem COUNT OF TRUCKS FILLED (BLOCKS OF 10 WORDS)
  363.    TALLY=0
  364.    Load Iff "spelling:iff/tomstruck.iff",0
  365.    Load "spelling:music/truckmusic.abk"
  366.    Music 1
  367.    Locate 11,7 : Paper 0 : Print "YOU HAVE FILLED";TALLYHO;" OF"
  368.    Locate 14,9 : Paper 0 : Print "TOMMYS TRUCKS"
  369.    Wait 400
  370.    Music Off 
  371.    Fade 3 : Wait 45
  372. End Proc
  373. Loop